Enterprises and individuals possess tremendous amounts of computing resources and often these resources are interconnected with one another over a network, such as the Internet. Resources may include storage devices, processing devices, memory devices, bandwidth devices, and the like. Many times a vast majority of these available resources are idle or under utilized. This has the potential of providing a tremendous opportunity to other network users whom at different times lack enough resources or have fully loaded resources which are not available to perform a desired task.
Unfortunately, enterprises and individuals are unwilling to share or sell access to their idle or under utilized resources. This is so, because resource owners fear misuse of their resources, fear exposure of confidential information contained within environments of their resources, and fear exposing their resources during the process to third-party intruders and/or to electronic viruses.
The concerns of resource owners are well-founded with existing network communications. That is, just a single misuse of an owner's resources can have catastrophic effects for an individual or an enterprise. Moreover, because the Internet is a chaotic environment with the identities of users often feigned and information transmitted over public communication lines, existing techniques cannot guarantee that misuse will not occur.
The scaling of different applications and servers can require as many as a 1000 machines in one lab trying to duplicate an environment and simulate a real world situation with many machines. Why dedicate people and resources when enterprises already have machines of their employees that can run the same test? However, the test in the lab is completely false, while a test from dispersed clients on a real network with real computers at least comes one step closer to a real world testing success.
In the future enterprises will need to test complex web sites, portals, or services and they do not have the machines or setup in order to run this type of test in the necessary size or the complexity required to make it realistic. Essentially, there is no way to build and execute complex tests that can allow an enterprise to use real machines with real networks to see how a system performs under load.
This is a major problem that every enterprise faces today and the industry lacks an approach to effectively predict what will really happen by testing with just internal deployments.
Thus, what is needed is a mechanism for improved distributed testing.